Skip to content

Conversation

@nenharper
Copy link
Contributor

The goal of this pull request is to restructure the developer onboarding on Harper, so that they go from zero to first Harper app very quickly.

As a result, I've removed other docs pages that don't accelerate onboarding (but contribute to Harper knowledge) into a different section called "Foundations of Harper"

I also added a Harper architecture page and replaced the diagram.

Copy link
Member

@Ethan-Arrowood Ethan-Arrowood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good progress!

@nenharper nenharper marked this pull request as ready for review September 15, 2025 15:57
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There needs to be links on this page to the documentation for our other config options. We want those searching for more specific installation instructions to easily find their way to our configuration information too.

Copy link
Member

@kriszyp kriszyp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks a good direction, the "foundations" section looks like it could be really helpful.

💡 **Why it matters:** Applications are how you ship real products on Harper. They let you stitch together resources, APIs, and UI in one place.
:::

## Extensions (a type of Component)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extensions and Plugins are not different types of components, they are the same type of component: a component designed to be used by other components/apps, not standalone. Plugin is just the new name for this type of component and the name for the new API for configuring this type of component and interacting with the dependent application. Really, the examples listed below are plugins as well (that use the old extension API).

At a high level:

- **Core services** handle data, networking, and files.
- **Extensions** layer in reusable features (REST, GraphQL, Next.js, etc.).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Plugins


- **Database** → Fast storage, queries, and transactions.
- **Networking** → REST/HTTP, WebSockets, MQTT, and cluster communication.
- **File system** → File operations and serving static assets.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Harper does not ship with a file system. An operating system ships with a file system, along with thousands of other primitives. But we aren't defining an OS here and "file system" is not a meaningful part of Harper. A more important essential service is our component management system.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added more comments to the discussion around the diagram as that is where these came from. In short, I used these terms not for their technical accuracy but for there general purposeness for first-time readers.

- Guaranteed consistency at commit.

:::info
💡 **Why it matters:** You don’t have to think about database race conditions or half-finished writes—Harper guarantees integrity by default.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!


Extensions are Harper’s plug-in modules. They add reusable features to applications and can depend on each other.

Here are a few common examples:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a little redundant with the coverage of plugins in core concepts? Would it be more helpful to describe the architecture of the root configuration of components and the transitive configuration and dependency of components?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Someday I would like to move the getting started guide outside the versioned docs, but that is beyond the scope of this PR.

@nenharper nenharper requested a review from kriszyp September 16, 2025 07:17
Copy link
Member

@kriszyp kriszyp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple comments, but this is looking great!

@nenharper nenharper requested a review from kriszyp September 17, 2025 20:23
Copy link
Member

@Ethan-Arrowood Ethan-Arrowood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, I've kept all my feedback to the docs/ files and I assume we'll copy those to the versions later.

In general this is making great progress. Almost there. I wasn't sure at first we wanted to use "plugins" so prominently, and I'm totally happy with that change. Lets make sure we are consistent then.

Comment on lines +28 to +32
✅ Quick check: open http://localhost:9925 or run:

```bash
curl http://localhost:9925/health
```
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like what happens if the user had selected prod? Would these still work or do they need to try https instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do they need to try https?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is my point; these installation instructions are missing the nuance of the actual user experience of setting up Harper. If the user selected prod defaults during installation then yes they would need to use https. But these docs do not explain that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a comment further up that mentions this and how we should go about fixing this section

@nenharper nenharper requested a review from kriszyp September 29, 2025 16:26
Copy link
Member

@Ethan-Arrowood Ethan-Arrowood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost there. Please remember to keep changes to the files within docs/ as those are the only ones I'm paying attention too right now. As soon as we are satisfied with those pages, you can copy them over to the versioned_docs/* paths.


Examples you’ll see in the ecosystem include:

- **Built in extensions**: These are embedded in Harper and work out of the box. Examples include [graphqlSchema](../reference/components/built-in-extensions#graphqlschema) for database and table definitions, [rest](../reference/components/built-in-extensions#rest) for RESTful access to your data, and [static](../reference/components/built-in-extensions#static) for serving files or frontend assets.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we use "plugins" here and below?

Copy link
Member

@Ethan-Arrowood Ethan-Arrowood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay I'm satisfied with this now. I didn't look too closely but I assume the version directories match the docs/ one.

@Ethan-Arrowood Ethan-Arrowood merged commit ade07fd into main Oct 7, 2025
5 checks passed
@Ethan-Arrowood Ethan-Arrowood deleted the nenne/harper-onboarding branch October 7, 2025 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants